@echo off
chcp 65001 >nul

echo === Token自动刷新功能测试 ===
echo.

REM 设置基础URL
set BASE_URL=http://localhost:8080

echo 1. 测试用户登录获取token...
echo 请求: POST %BASE_URL%/baoyang/user/login
echo 请求体: {"username":"testuser","password":"123456"}
echo.

REM 登录获取token
curl -s -X POST "%BASE_URL%/baoyang/user/login" -H "Content-Type: application/json" -d "{\"username\":\"testuser\",\"password\":\"123456\"}" > temp_response.txt
set /p LOGIN_RESPONSE=<temp_response.txt
echo 登录响应: %LOGIN_RESPONSE%
echo.

REM 提取token (简化版本，实际使用时可能需要更复杂的解析)
for /f "tokens=*" %%i in ('findstr "data" temp_response.txt') do set TOKEN_LINE=%%i
echo 获取到的token信息: %TOKEN_LINE%
echo.

echo 2. 测试token有效性...
echo 请求: GET %BASE_URL%/test/auth
echo.

REM 测试token有效性 (需要手动设置token)
echo 请手动设置token后测试以下命令:
echo curl -X GET "%BASE_URL%/test/auth" -H "Authorization: YOUR_TOKEN_HERE"
echo.

echo 3. 测试token刷新功能...
echo 请求: GET %BASE_URL%/test/refresh
echo.

echo 请手动设置token后测试以下命令:
echo curl -X GET "%BASE_URL%/test/refresh" -H "Authorization: YOUR_TOKEN_HERE"
echo.

echo 4. 测试公开接口（无需token）...
echo 请求: GET %BASE_URL%/test/public
echo.

curl -s -X GET "%BASE_URL%/test/public"
echo.

echo === 测试完成 ===
echo.
echo 说明：
echo - 如果所有响应都返回成功，说明token自动刷新功能正常工作
echo - 每次调用需要认证的接口时，token的过期时间都会自动重置为1小时
echo - 可以通过Redis客户端查看token的过期时间：TTL login:token:YOUR_TOKEN
echo.
echo Redis监控命令：
echo KEYS login:token:*
echo TTL login:token:YOUR_TOKEN
echo.

REM 清理临时文件
del temp_response.txt 2>nul

pause 